<?php

namespace app\adminapi\logic;

use app\common\model\Admin;
use app\common\model\Auth;
use app\common\model\Role;

class AuthLogic
{
    public static function check()
    {
        // 获取当前请求的控制器和方法
        $controller = request()->controller();
        $action = request()->action();
        // 首页不需要权限
        if ($controller == 'Index' && $action == 'index') {
            return true;
        }

        $userId = input('user_id');
        $admin = Admin::find($userId);
        $roleId = $admin['role_id'];
        // 超级管理员不需要权限
        if ($roleId == 1) {
            return true;
        }
        $role = Role::find($roleId);
        $roleAuthIds = explode(',', $role['role_auth_ids']);
        // 获取当前请求的控制器和方法对应的权限ID
        $authId = Auth::where('auth_c', $controller)->where('auth_a', $action)->value('id');
        if (in_array($authId, $roleAuthIds)) {
            return true;
        }
        return false;
    }
}